(for Internet Explorer)
テキストを XML/HTML の実体参照に変換します。
番号またはコマンド >XmlText
-------------------------------------------------------------------------------
テキストを XML/HTML の実体参照に変換します。
1) テキスト → XML/HTML テキストの実体参照 [ToRef]
番号またはコマンド名を入力してください >1

Enter のみ:クリップボードの内容を入力とします。
変換前のテキストが書かれたファイルのパス >
変換しました。
XmlText
1
関連
連続空白
の置き換えは行いません。
テキストファイルの一部を置き換えます。
テキストファイルの一部が同じかどうか比較します。
複数のフォルダで指定した名前のファイルの内容をマージする手助けをします。
vbslib を使ったスクリプトをバージョンアップする
Syncs
2つのファイルの同期を自動的に取ります
SearchNewFile
新しく更新したファイルを探します
XML の一部を取り出します。
vbslib を使って作られたツールです。
vbslib を使うときに役に立つプログラムを参考に挙げます。
MS Office をフルインストールしたときに使えます
スクリプト・デバッガが使えるのは、Standard 以上
vbslib は構造化テキストになっています
ドキュメントからソースコードにジャンプできます
関連
C言語の #define から、数値と文字列の配列のコードを生成します。
テキスト比較 diff ツール
テキスト・エディター
テキストファイルが英語だけになっているかチェックします。
チェックするファイルまたはフォルダーのパス: TestData
設定ファイルのパス: TestData\SettingForCheckEnglish.ini

<FILE path="KanjiInUnicode.txt">
  <LINE num="2" text="漢字"/>
  <LINE num="4" text="です。"/>
  <SUMMARY count="2"/>
</FILE>

<FILE path="Sub\SJisInAscii.txt">
  <LINE num="2" text="シフトJIS"/>
  <LINE num="4" text="です。"/>
  <SUMMARY count="2"/>
</FILE>
出力の例:
[CheckEnglishOnlyExe]
ExceptFile = *.exe
ExceptFile = *.lib
ExceptFile = *.dll
; comment
ExceptFile = *\AnyFolder.txt
ExceptFile = Sub\StepPath.txt
ExceptFile = *\SubFolder\*
CheckEnglishOnly.exe /Folder:FolderA /Setting:Setting.ini
テキスト・ファイルの中に、英文字以外の文字が含まれるファイルを一覧します。
コマンド・プロンプトから実行してください。
【引数】
/Folder
/Setting
チェックするフォルダーのパス
設定ファイルのパス
関連
→ T_CheckEnglishOnly.vbs # T_CheckEnglishOnly
テスト
vbslib 版
→ scriptlib\vbslib\CheckEnglishOnly フォルダー
→ _src\Test\tools\scriptlib\vbslib\CheckEnglishOnly フォルダー
ソース
→ CheckEnglishOnly_src_121106.zip
実行ファイルまたはソースがある場所:
コマンド・プロンプト版
* から始まる設定の場合は、すべてのフォルダーに対する設定になります。
相対パスの基準は、設定ファイルがあるフォルダーです。
相対パスの基準は、設定ファイルがあるフォルダーです。
ただし、/Setting オプションがないときは、チェックするフォルダーです。
/Folder:"FolderPath" /Setting:"SettingForCheckEnglish.ini"
/* Set "except_names" : 設定ファイルに指定した "ExceptFile" */
→ CheckEnglishOnly.c
e= Set2_alloc( &except_names, &except_name, StrMatchKey );
FileT_callByNestFind
/* "path" が、チェックをしないファイル "except_names" に含まれるならスキップする */
ファイル一覧、設定ファイル関係:
Main_getFilePathFromNestFind
if ( StrMatchKey_isMatch( except_name, path ) ) { break; }
/* Set "paths" : チェックするファイルのパスの集合。
if ( IniStr_isLeft( line, _T("ExceptFile") ) ) {
(src)
  Set w_= AppKey.NewWritable( "." ).Enable()
  Set rep = new ReplaceSymbolsClass
  rep.Load  "ReplaceSymbols.xml"
  rep.ReplaceFiles
複数のファイルの中の複数の単語(文字列)を一度に置き換えます。
サンプル
参考
テスト
→ T_ReplaceSymbols フォルダー
ユーザーに確認を求めないときは、rep.IsSubmit = False してください。
Sub  ReplaceSymbolsClass::Load( XML_Path as string, Config as ReplaceSymbolsLoadConfigClass )
を読み込みます。
【引数】
XML_Path
ReplaceSymbols の設定ファイルのパス
Config
Empty または、設定
Class  ReplaceSymbolsLoadConfigClass
    Public  IsReverse  '// as boolean
End Class
IsReverse = True なら、Replace タグの from と to を入れ替えて、置き換えます。
Sub  ReplaceSymbolsClass::ReplaceFiles()
設定に従って、指定した複数のファイルの中の文字列の単語を置き換えます。
設定するには、
を使います。
cscript.exe ConvSymbol.vbs /in_type:CDefine /in:file.h  /out_type:CLang /out:file.c
                           /strs_array_name:g_Symbols_strs  /ids_array_name:g_Symbols_ids
シンボルを定義しているC言語の #define から、数値と文字列の配列のコードを生成します。
入力ファイル・サンプル:
#define  Sym1  10
#define  Sym2  11
出力ファイル・サンプル:
TCHAR*  g_Symbols_strs[] = {
  _T("Sym1"),
  _T("Sym2"),
};
int  g_Symbols_ids[] = {
  10,
  11,
};
StrT_convStrToId 関数(clib) を使うと、文字列から数値に変換することができます。
→ StrT_convStrToId
テスト
→ Test_ConvSymbol フォルダ
int    id;
TCHAR  str[256];

_tcscpy_s( str, _countof(str), _T("Sym1") );
id = StrT_convStrToId( str, g_Symbols_strs, g_Symbols_ids,
                       sizeof(g_Symbols_strs)/sizeof(*g_Symbols_strs), 0 );
参考
【引数】
in_type
in
CDefine 固定
C言語の #define が書かれたテキスト・ファイルのパス
out_type
CLang 固定
→ ConvSymbol フォルダ
out
数値と文字列の配列の C言語コードの出力先となるファイルのパス
strs_array_name
ids_array_name
文字列の配列の変数名
数値の配列の変数名
Sub  ConvSymbol( InPath as string, OutPath as string, Opt as ConvSymbolOption )
Class  ConvSymbolOption
  Public  InType
  Public  OutType
  Public  StrsFuncName
  Public  IDsFuncName
End Class
内容は、上記引数と同じ
サンプル・スクリプト:
  Set conv_option = new ConvSymbolOption
  Set o = conv_option
  o.InType       = "CDefine"
  o.OutType      = "CLang"
  o.StrsFuncName = "g_Symbols_strs"
  o.IDsFuncName  = "g_Symbols_ids"

  ConvSymbol  "file.h", "file.c", conv_option
サンプル
(src)
'//=== make g("OutTableH")
Dim rep, line
Set rep = StartReplace( g("OutTableC"), g("OutTableH"), True )
rep.w.WriteLine  "#if __cplusplus"
rep.w.WriteLine  " extern ""C"" {"
rep.w.WriteLine  "#endif"
rep.w.WriteLine  ""
Do Until rep.r.AtEndOfStream
  line = rep.r.ReadLine()
  If InStr( line, "g_Symbols_strs" ) > 0  or InStr( line, "g_Symbols_ids" ) > 0 Then
    rep.w.WriteLine  "extern "+ Replace( line, " = {", ";" )
  End If
Loop
rep.w.WriteLine  ""
rep.w.WriteLine  "#if __cplusplus"
rep.w.WriteLine  " } // extern ""C"""
rep.w.WriteLine  "#endif"
rep.w.WriteLine  ""
rep.w.WriteLine  "// "+ g("OutTableH") +" was made by """+ WScript.ScriptName +""""
rep.Finish
C ファイルから、ヘッダファイルを作成するスクリプトは、下記のようになります。
テキストの差分を表示するプログラムです。 TortoiseSVN (SubVersion) に付属しています。
参考
開発元
関連
テキストの差分を表示するプログラムです。
推奨初期設定
[ 設定 | 比較フィルタ | タブと空白を削除 ] を選択してから、Rekisa を再起動します。
"$(PATH)" -Y=$(Y+1)
サクラエディタで開く(&S)
C:\Program Files\sakura\sakura.exe
[ 設定 | 外部ツール ]
フォルダを開く(&F)
explorer
/SELECT, "$(PATH)"
(  -X=$(X+1) は使いにくい)
ArgsLog.exe に指定したパラメーターを、カレント・フォルダーの ArgsLog.txt ファイルに追記出力します。
テスト用です。
テスト プログラムが、テスト対象のプログラム(exe ファイル)を起動する代わりに ArgsLog.exe を起動
したり、テスト対象のプログラムに例えば /ArgsLog オプションを付けることで関数の内部から起動する
exe ファイルを ArgsLog.exe に切り替えたりすることがよくあります。 たとえば、テスト対象のプログラム
がテキスト エディターを起動する関数を呼び出したとき、その関数の中で ArgsLog.exe が起動され、
テキスト エディターが起動したものとしてテストを実施し、起動したコマンドラインについて ArgsLog.txt
ファイルをチェックします。
→ ArgsLog フォルダー
参考
関連
vbslib を使ったスクリプトは、スクリプトがテキスト・ファイルを開くために起動するエディターや、
テキストを比較するツールなどを、「C:\Program Files」 フォルダーを調べて自動的に探します。
なお、設定は、
の PC_setting_default.vbs や
PC_setting_default.vbs
PC_setting.vbs に入っている下記の関数定義です。
探し方を変更するときは、
で設定を変更してください。
の中の .vbs ファイルに、ユーザーが定義する関数です。
インクルードする外部 .vbs ファイルのパスの配列を返す。
フォルダーを開きます。
管理者のユーザ名を返します。
すべてのモジュールをインクルードした後のコールバック。
関連
テスト用に、外部プログラムを起動したログを出力する
によって、setting フォルダーに入っている、
の setting_default フォルダの中の全 .vbs ファイル
1.
3.
%APPDATA%\Scripts フォルダの中の全 .vbs ファイル (*2)
環境変数 myhome_mem は、必要に応じて設定してください。
[ スタート | コンピューター ] を右クリック [ プロパティ | 詳細設定 | 環境変数 ]
[ ユーザー環境変数 ] に設定してください。
(*1)
の setting フォルダの中の全 .vbs ファイル
4.
%APPDATA%
Scripts
Xxx_setting.vbs
← 2. PC全体の設定 (*2)
setting フォルダーは、vbslib の設定を記述した vbs ファイルを格納するフォルダーです。
scriptlib\vbslib\setting フォルダーなどの中に、スクリプト・ファイルを配置し、関数定義を
記述することで設定を行います。
メイン.vbs
(任意のフォルダー)
setting_default
setting
← 1. デフォルト設定(通常、編集しません)
Xxx_setting_default.vbs
Xxx_setting.vbs
← 4. 上記(任意のフォルダー)の中の設定
2.
%myhome_mem%\prog\scriptlib\setting_mem フォルダの中の全 .vbs ファイル (*1)
(*2)
コマンドプロンプトを開いて、echo %APPDATA%\Scripts と入力すると、実際の
パスが分かります。
%myhome_mem%\prog\scriptlib\setting_mem
Xxx_setting.vbs
← 3. USB メモリーに入っている PC全体の設定
環境変数を使用
スクリプトを実行すると、はじめに
すべての vbs ファイルの内容を実行します。 つまり、vbs ファイルの名前は、自由に付ける
ことができます。 この実行によって、関数が定義されます。 setting フォルダーは、複数あり
ますが、下記の 1. 2. 3. 4. 5. の順番で実行します。 同じ関数を他の .vbs ファイルでも定義して
いるときは、後で定義したものが優先されます。 4 の setting フォルダーにある設定が最も
テスト
関連
vbslib
Windows 7, 10 : C:\Users\user1\AppData\Roaming
Windows XP : C:\Document and Settings\user1\Application Data
2.が設定されていない PC を一時的に使うときのため
vbslib
Xxx_setting.vbs
setting
← setting フォルダー、下記の 1. 2. 3. 4. があるフォルダー
← 設定ファイル
← 5. スクリプトの中の include や ExecuteGlobal
優先されます。 ただし、
を呼び出すと定義は変更されます。
5.
スクリプトの中の
下記の 1. 2. 3. 4. 5. の順番で実行し、後で定義したものが優先されます。
設定ファイルの中では、vbs_inc_sub.vbs ファイルで定義されている関数だけを使用できます。
ソース
1. 2. 3. 4. のファイルがあるフォルダーのパスは、
にあります。
などを呼び出すと関数定義は変更されます。
Main 関数を呼び出す前に関数定義を変えるには、
に変更後の関数定義が入ったスクリプトを配置します。
Main 関数を呼び出した後は、
変更する前の関数も呼び出すときは、
を使ってください。
テスト スクリプトから呼ばれる関数の定義を変更するときは、include するとよいでしょう。
設定を操作する関数
Sub  CheckSettingFunctionExists( FunctionName as string )
setting フォルダーにあるスクリプトに書くべき関数があることをチェックします。
【引数】
FunctionName
定義されているかどうかをチェックする関数の名前
との違いは、関数が無ければ下記のようなエラーが発生することです。
<ERROR msg="vbslib の setting フォルダーにある .vbs ファイルに関数が定義されてい
ません。" function="Setting_getDiffCmdLine"/>
関連
ソース
→ vbs_inc_sub.vbs
サンプル
    CheckSettingFunctionExists  "Setting_getNaturalDocsPerlPath"
    natural_docs_path = Setting_getNaturalDocsPerlPath()
設定関数をチェックしてから、呼び出します。
Function  GetExistPathInSetting( Paths as array of string, SettingFuncName as string )
Paths 配列に格納されているパスのうち、最初にファイルが存在するパスを返します。
【引数】
Paths
SettingFuncName
パスの配列
本関数を呼び出している関数の名前
返り値
ファイルが存在するパス
Paths の要素に Empty を含んでいてもエラーにはなりません。

もし、該当するファイルが存在しなければ、setting フォルダーにある vbs ファイルを修正する
ように、警告が表示されます。
GetExistPathInSetting は、setting フォルダーの中で定義する関数の中から呼び出せる関数です。
サンプル
Function  Setting_getEditorCmdLine( i )

  paths = Array( _
    g_sh.ExpandEnvironmentStrings( "%ProgramFiles%\sakura\sakura.exe" ), _
    g_sh.ExpandEnvironmentStrings( "%windir%\notepad.exe" ) )
  exe = GetExistPathInSetting( paths, "Setting_getEditorCmdLine" )
→ Setting_getEditorCmdLine のサンプル (src)
の呼び出しも検討してください。
ソース
→ vbs_inc_sub.vbs
Sub  EditAndRunScript( ScriptPath as string, IsKeepThisProcessIfRun as boolean )
VBScript ファイルをテキスト・エディターで開いて、編集後に実行します。
【引数】
ScriptPath
IsKeepThisProcessIfRun
VBScript ファイルのパス。 Empty =
False=実行開始したら現在のプロセスを終了する
(src)
サンプル
Sub  EditAndRunThisScript()
    EditAndRunScript  Empty, False
End Sub
本関数を呼び出すと、
VBScript ファイル開きます。
に登録したテキスト・エディターを使って
テキスト・エディターを閉じたら、編集した VBScript ファイルを実行するかどうかを確認する
ウィンドウが開きます。 実行するを選んだら、実行を開始して、IsKeepThisProcessIfRun
= False なら、現在実行中のプロセスは終了します。 つまり、新しい VBScript ファイルの
プロセスに切り替わります。  IsKeepThisProcessIfRun = True なら、実行を開始して、
本関数から戻ります。
実行することをキャンセルすると選んだら、そのまま本関数から戻ります。
→ T_EditAndRunScript フォルダ
テスト
Function  Setting_getExistSettingPath( StepPath as string ) as string
に存在する1つのファイルまたはフォルダーのパスを返します。
AssertExist  g_vbslib_ver_folder + "setting_default"
AssertExist  g_vbslib_ver_folder + "setting"

setting_path = Setting_getExistSettingPath( "MySetting.xml" )
If not IsEmpty( setting_path ) Then
    '// ...
End If

Assert  setting_path = g_vbslib_ver_folder + "setting"
【引数】
StepPath
存在をチェックするファイルまたはフォルダーの相対パス
サンプル
返り値
見つかったファイルまたはフォルダーの絶対パス、または、Empty
配列にあるフォルダーに、ファイルまたはフォルダーが存在するかどうかを
チェックし、最も優先するパスを返します。 g_vbslib_setting_paths 配列の後の方の要素ほど優先します。
"MySetting.xml"
setting_path
setting フォルダーの2つに MySetting.xml ファイルがあるとき、優先する方のファイルのパスを
setting_path 変数に代入しています。
テスト
ソース
→ T_Setting.vbs
T_Setting_getExistSettingPath
→ vbs_inc_sub.vbs